home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / a_man / cat1 / gated.z / gated
Encoding:
Text File  |  1998-10-20  |  61.1 KB  |  1,057 lines

  1.  
  2.  
  3.  
  4. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      gated - gateway routing daemon
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      ////uuuussssrrrr////eeeettttcccc////ggggaaaatttteeeedddd [ ----tttt[iiiieeeerrrrppppuuuuRRRRHHHH] ] [ logfile ]
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      _G_a_t_e_d is a routing daemon that handles multiple routing protocols and
  16.      replaces _r_o_u_t_e_d(1M), _e_g_p_u_p(1M), and any routing daemon that speaks the
  17.      HELLO routing protocol.  _G_a_t_e_d currently handles the RIP, EGP, and HELLO
  18.      routing protocols.  _G_a_t_e_d can be configured to perform all routing
  19.      protocols or any combination of the three.  The configuration for _g_a_t_e_d
  20.      is stored in the file /_u_s_r/_e_t_c/_g_a_t_e_d._c_o_n_f.
  21.  
  22. CCCCOOOOMMMMMMMMAAAANNNNDDDD LLLLIIIINNNNEEEE TTTTRRRRAAAACCCCIIIINNNNGGGG OOOOPPPPTTTTIIIIOOOONNNNSSSS
  23.      _G_a_t_e_d can be invoked with a number of tracing flags and/or a log file.
  24.      Tracing flags may also be specified in the configuration file with the
  25.      ``traceflags'' clause.  _G_a_t_e_d forks and detaches itself from the
  26.      controlling terminal unless tracing flags are specified without
  27.      specifying a log file, in which case all tracing output is sent to the
  28.      controlling terminal.  The valid tracing flags are as follows:
  29.  
  30.      ----tttt   If used alone, log all error messages, route changes and EGP packets
  31.           sent and received.  Using this flag alone turns on the iiii, eeee, rrrr, and
  32.           pppp trace flags automatically.  When used with another flag, the ----tttt
  33.           has no effect and only the accompanying flags are recognized.  Note
  34.           that when using other flags, ----tttt must be used with them.
  35.  
  36.      iiii    Log all internal errors and interior routing errors.
  37.  
  38.      eeee    Log all external errors due to EGP, exterior routing errors, and EGP
  39.           state changes.
  40.  
  41.      rrrr    Log all routing changes.
  42.  
  43.      pppp    Trace all EGP packets sent and received.
  44.  
  45.      uuuu    When used with p, R, H or N, display the entire contents of routing
  46.           packets sent and received.
  47.  
  48.      RRRR    Trace all RIP packets sent or received.
  49.  
  50.      HHHH    Trace all HELLO packets sent or received.
  51.  
  52.      NNNN    Trace all SNMP transactions.
  53.  
  54.      _G_a_t_e_d always logs fatal errors.  If no log file is specified and no
  55.      tracing flags are set, all messages are sent to /_d_e_v/_n_u_l_l.
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  71.  
  72.  
  73.  
  74. SIGNAL PROCESSING
  75.      _G_a_t_e_d catches a number of signals and performs specific actions.
  76.      Currently _g_a_t_e_d does special processing with the SIGHUP, SIGINT and
  77.      SIGUSR1 signals.
  78.  
  79.      When a SIGHUP is sent to _g_a_t_e_d and _g_a_t_e_d is invoked with trace flags and
  80.      a log file, tracing is toggled off and the log file is closed.  At this
  81.      point the log file may be moved or removed.  The next SIGHUP to _g_a_t_e_d
  82.      will toggle the tracing on.  _G_a_t_e_d reads the configuration file and sets
  83.      the tracing flags to those specified with the ``traceflags'' clause.  If
  84.      no ``traceflags'' clause is specified tracing is resumed using the trace
  85.      flags specified on the command line.  The log file specified in the
  86.      command line is created if necessary and the trace output is sent to that
  87.      file.  The trace output is appended to an already existing log file.
  88.      This is useful for having rotating log files like those of the _s_y_s_l_o_g(1M)
  89.      daemon.
  90.  
  91.      Sending _g_a_t_e_d a SIGINT will cause a memory dump to be scheduled within
  92.      the next sixty seconds.  The memory dump will be written to the file
  93.      /_u_s_r/_t_m_p/_g_a_t_e_d__d_u_m_p. _G_a_t_e_d will finish processing pending routing updates
  94.      before performing the memory dump.  The memory dump contains a snapshot
  95.      of the current _g_a_t_e_d status, including the interface configurations, EGP
  96.      neighbor status and the routing tables.  If the file /_u_s_r/_t_m_p/_g_a_t_e_d__d_u_m_p
  97.      already exists, the memory dump will be appended to the existing file.
  98.  
  99.      On receipt of a SIGUSR1, _g_a_t_e_d will reread selected information from the
  100.      configuration file.  This information currently includes the
  101.      ``announcetoAS'', ``noannouncetoAS'' and ``validAS''.  If no errors are
  102.      detected the new configuration information is put into effect, if errors
  103.      are detected, the configuration information is not changed.  _G_a_t_e_d will
  104.      also check the interface status on receipt of a SIGUSR1.
  105.  
  106. CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN FFFFIIIILLLLEEEE OOOOPPPPTTTTIIIIOOOONNNNSSSS FFFFOOOORRRR CCCCOOOONNNNTTTTRRRROOOOLLLLLLLLIIIINNNNGGGG TTTTRRRRAAAACCCCIIIINNNNGGGG OOOOUUUUTTTTPPPPUUUUTTTT
  107.      ttttrrrraaaacccceeeeffffllllaaaaggggssss ttttrrrraaaacccceeeeffffllllaaaagggg [[[[ttttrrrraaaacccceeeeffffllllaaaagggg]]]] [[[[ttttrrrraaaacccceeeeffffllllaaaagggg]]]] ............
  108.  
  109.      The clause tells the _g_a_t_e_d process what level of tracing output is
  110.      desired.  This option is read during _g_a_t_e_d initialization and whenever
  111.      _g_a_t_e_d receives a SIGHUP.  This option is overridden at initialization
  112.      time if tracing flags are specified on the command line.  The valid
  113.      tracing flags are as follows:
  114.  
  115.      iiiinnnntttteeeerrrrnnnnaaaallll    Log all internal errors and interior routing errors.
  116.  
  117.      eeeexxxxtttteeeerrrrnnnnaaaallll    Log all external errors due to EGP, exterior routing errors,
  118.                  and EGP state changes.
  119.  
  120.      rrrroooouuuutttteeee       Log all routing changes.
  121.  
  122.      eeeeggggpppp         Trace all EGP packets sent and received.
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  137.  
  138.  
  139.  
  140.      uuuuppppddddaaaatttteeee      When used with egp, rip, hello or snmp, display the contents
  141.                  of all routing packets sent and received.
  142.  
  143.      rrrriiiipppp         Trace all RIP packets sent and received.
  144.  
  145.      hhhheeeelllllllloooo       Trace all HELLO packets sent and received.
  146.  
  147.      iiiiccccmmmmpppp        Trace all ICMP redirect packets received.
  148.  
  149.      ssssnnnnmmmmpppp        Trace all SNMP transactions.
  150.  
  151.      ssssttttaaaammmmpppp       Print a timestamp to the log file every 10 minutes.
  152.  
  153.      ggggeeeennnneeeerrrraaaallll     A combination of ``internal'', ``external'', ``route'' and
  154.                  ``egp''.
  155.  
  156.      aaaallllllll         Enable all of the above tracing flags.
  157.  
  158.      If more than one ``traceflags'' clause is used, the tracing flags
  159.      accumulate.
  160.  
  161. DDDDEEEEFFFFAAAAUUUULLLLTTTT CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN
  162.      _G_a_t_e_d normally reads configuration information from /_u_s_r/_e_t_c/_g_a_t_e_d._c_o_n_f.
  163.      If this file does not exist, _g_a_t_e_d assumes a default configuration file
  164.      of:
  165.           RRRRIIIIPPPP yyyyeeeessss
  166.           HHHHEEEELLLLLLLLOOOO nnnnoooo
  167.           EEEEGGGGPPPP nnnnoooo
  168.  
  169.      In addition, if the configuration file does not exist, there is only one
  170.      network interface, and a default route is installed in the kernel, _g_a_t_e_d
  171.      will exit assuming that a simple default route is adequate.
  172.  
  173. CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN FFFFIIIILLLLEEEE OOOOPPPPTTTTIIIIOOOONNNNSSSS FFFFOOOORRRR HHHHAAAANNNNDDDDLLLLIIIINNNNGGGG RRRROOOOUUUUTTTTIIIINNNNGGGG PPPPRRRROOOOTTTTOOOOCCCCOOOOLLLLSSSS
  174.      In this section, the numerous configuration options are explained.  Each
  175.      time the _g_a_t_e_d process is started, it reads the file /_u_s_r/_e_t_c/_g_a_t_e_d._c_o_n_f
  176.      _t_o obtain its instructions on how routing will be managed with respect to
  177.      each protocol.  The configuration options are as follows:
  178.  
  179.      RRRRIIIIPPPP {{{{yyyyeeeessss |||| nnnnoooo |||| ssssuuuupppppppplllliiiieeeerrrr |||| ppppooooiiiinnnnttttooooppppooooiiiinnnntttt |||| qqqquuuuiiiieeeetttt |||| ggggaaaatttteeeewwwwaaaayyyy ####}}}}
  180.  
  181.      This tells the _g_a_t_e_d process how to perform the RIP routing protocol.
  182.      Only one of the above RIP arguments is allowed after the keyword ``RIP''.
  183.      If more than one is specified, only the first one is recognized.  A list
  184.      of the arguments to the RIP clause follows:
  185.  
  186.      yyyyeeeessss         Perform the RIP protocol.  Process all incoming RIP packets
  187.                  and supply RIP information every thirty seconds only if there
  188.                  are two or more network interfaces.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  203.  
  204.  
  205.  
  206.      nnnnoooo          Do not perform the RIP protocol.  Do not perform RIP.
  207.  
  208.      ssssuuuupppppppplllliiiieeeerrrr    Perform the RIP protocol.  Process all incoming RIP packets
  209.                  and force the supplying of RIP information every thirty
  210.                  seconds no matter how many network interfaces are present.
  211.  
  212.      ppppooooiiiinnnnttttooooppppooooiiiinnnntttt Perform the RIP protocol.  Process all incoming RIP packets
  213.                  and force the supplying of RIP information every thirty
  214.                  seconds no matter how many network interfaces are present.
  215.                  When this argument is specified, RIP information will not be
  216.                  sent out in a broadcast packet.  The RIP information will be
  217.                  sent directly to the gateways listed in the
  218.                  ``sourceripgateways'' option described below.
  219.  
  220.      qqqquuuuiiiieeeetttt       Process all incoming RIP packets, but do not supply any RIP
  221.                  information no matter how many network interfaces are
  222.                  present.
  223.  
  224.      ggggaaaatttteeeewwwwaaaayyyy #   Process all incoming RIP packets, supply RIP information
  225.                  every thirty seconds, and announce the default route
  226.                  (0.0.0.0) with a metric of #.  The metric should be specified
  227.                  in a value that represents a RIP hopcount.  With this option
  228.                  set, all other default routes coming from other RIP gateways
  229.                  will be ignored.  The default route is only announced when
  230.                  actively peering with at least one EGP neighbor and therefore
  231.                  should only be used when EGP is used.
  232.  
  233.      If no ``RIP'' clause is specified, RIP will not be performed.
  234.  
  235.      HHHHEEEELLLLLLLLOOOO {{{{yyyyeeeessss |||| nnnnoooo |||| ssssuuuupppppppplllliiiieeeerrrr |||| ppppooooiiiinnnnttttooooppppooooiiiinnnntttt |||| qqqquuuuiiiieeeetttt|||| ggggaaaatttteeeewwwwaaaayyyy ####}}}}
  236.  
  237.      This tells _g_a_t_e_d how to perform the HELLO routing protocol.  The
  238.      arguments parallel the RIP arguments, but do have some minor differences.
  239.      Only one of the above HELLO arguments is allowed after the keyword
  240.      ``HELLO''.  If more than one is specified, only the first one is
  241.      recognized.  A list of the arguments to the HELLO clause follows:
  242.  
  243.      yyyyeeeessss           Perform the HELLO protocol.  Process all incoming HELLO
  244.                    packets and supply HELLO information every fifteen seconds
  245.                    only if there are two or more network interfaces.
  246.  
  247.      nnnnoooo            Do not perform the HELLO protocol.  Do not perform HELLO.
  248.  
  249.      ssssuuuupppppppplllliiiieeeerrrr      Perform the HELLO protocol.  Process all incoming HELLO
  250.                    packets and force the supplying of HELLO information every
  251.                    fifteen seconds no matter how many network interfaces are
  252.                    present.
  253.  
  254.      ppppooooiiiinnnnttttooooppppooooiiiinnnntttt   Perform the HELLO protocol.  Process all incoming HELLO
  255.                    packets and force the supplying of HELLO information every
  256.                    fifteen seconds no matter how many network interfaces are
  257.                    present.  When this argument is specified, HELLO
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  269.  
  270.  
  271.  
  272.                    information will not be sent out in a broadcast packet.
  273.                    The HELLO information will be sent directly to the gateways
  274.                    listed in the ``sourcehellogateways'' option described
  275.                    below.
  276.  
  277.      qqqquuuuiiiieeeetttt         Process all incoming HELLO packets, but do not supply any
  278.                    HELLO information despite the number of network interfaces
  279.                    present.
  280.  
  281.      ggggaaaatttteeeewwwwaaaayyyy #     Process all incoming HELLO packets, supply HELLO
  282.                    information every fifteen seconds, and announce the default
  283.                    route (0.0.0.0) with a time delay of #.  The time delay
  284.                    should be specified in milliseconds.  The default route is
  285.                    only announced when actively peering with at least one of
  286.                    EGP neighbor, therefore should only be used when running
  287.                    EGP.
  288.  
  289.      If no ``HELLO'' clause is specified, HELLO will not be performed.
  290.  
  291.      EEEEGGGGPPPP {{{{yyyyeeeessss |||| nnnnoooo}}}}
  292.  
  293.      This clause allows the processing of EGP by _g_a_t_e_d to be turned on or off.
  294.  
  295.      nnnnoooo   Do not perform any EGP processing.
  296.  
  297.      yyyyeeeessss  Perform all EGP operations.
  298.  
  299.      Please note that by default, EGP processing will take place.  Therefore,
  300.      if no ``EGP'' clause is specified, all EGP operations will take place.
  301.  
  302.      aaaauuuuttttoooonnnnoooommmmoooouuuussssssssyyyysssstttteeeemmmm ####
  303.  
  304.      If performing the EGP protocol, this clause must be used to specify the
  305.      autonomous system number (#).  If not specified, _g_a_t_e_d will exit and give
  306.      a fatal error message.
  307.  
  308.      eeeeggggppppmmmmaaaaxxxxaaaaccccqqqquuuuiiiirrrreeee ####
  309.  
  310.      If performing the EGP protocol, this clause specifies the number of EGP
  311.      peers with whom _g_a_t_e_d will be performing EGP.  This number must be
  312.      greater than zero and less than or equal to the number of EGP neighbors
  313.      specified or _g_a_t_e_d will exit.  If this clause is omitted, all EGP
  314.      neighbors will be acquired.
  315.  
  316.      eeeeggggppppnnnneeeeiiiigggghhhhbbbboooorrrr    ggggaaaatttteeeewwwwaaaayyyy
  317.                     mmmmeeeettttrrrriiiicccciiiinnnn mmmmeeeettttrrrriiiicccc
  318.                     eeeeggggppppmmmmeeeettttrrrriiiiccccoooouuuutttt eeeeggggppppmmmmeeeettttrrrriiiicccc
  319.                     AAAASSSSiiiinnnn aaaassssiiiinnnn
  320.                     AAAASSSSoooouuuutttt aaaassssoooouuuutttt
  321.                     AAAASSSS aaaassss
  322.                     nnnnooooggggeeeennnnddddeeeeffffaaaauuuulllltttt
  323.                     aaaacccccccceeeeppppttttddddeeeeffffaaaauuuulllltttt
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  335.  
  336.  
  337.  
  338.                     ddddeeeeffffaaaauuuullllttttoooouuuutttt eeeeggggppppmmmmeeeettttrrrriiiicccc
  339.                     vvvvaaaalllliiiiddddaaaatttteeee
  340.                     iiiinnnnttttffff iiiinnnntttteeeerrrrffffaaaacccceeee
  341.                     ssssoooouuuurrrrcccceeeennnneeeetttt nnnneeeetttt
  342.                     ggggaaaatttteeeewwwwaaaayyyy ggggaaaatttteeeewwwwaaaayyyy
  343.  
  344.      If performing the EGP protocol, this clause specifies with whom _g_a_t_e_d
  345.      will be performing EGP.  ``Gateway'' can be either a symbolic name in
  346.      /_e_t_c/_h_o_s_t_s or an IP hostname in Internet dot (a.b.c.d) notation.  Dot
  347.      notation is recommended to avoid confusion.  Each EGP neighbor will be
  348.      acquired in the order listed in the configuration file.
  349.  
  350.      The ``metricin'' option is used to specify the internal time delay to be
  351.      used as a metric for all of the routes learned from this neighbor.  It
  352.      should be specified as a time delay from zero to 30000.  If this option
  353.      and the validate option are not used, the internal metric used is the EGP
  354.      distance multiplied by 100.
  355.  
  356.      The ``egpmetricout'' option is used to specify the EGP distance used for
  357.      all nets advertised to this neighbor.  It should be specified as an EGP
  358.      distance in the range of 0 to 255.  If this option is not specified, the
  359.      internal time delay for each route will be converted to an EGP distance
  360.      by division by 100 with distances greater than 255 being set to 255.
  361.  
  362.      The ``ASin'' option is used to verify the autonomous system number of
  363.      this neighbor.  If the autonomous system number specified in neighbor
  364.      acquisition packets does not verify an error message is generated
  365.      refusing the connection.  If this option is not specified, no
  366.      verification of autonomous system numbers is done.
  367.  
  368.      The ``ASout'' option is used to specify the autonomous system number in
  369.      EGP packets sent to this neighbor.  If not specified, the autonomous
  370.      system specified in the ``autonomoussystem'' clause is used.  This clause
  371.      should not normally be used, it is reserved for a special situation
  372.      interfacing between the ARPAnet and NSFnet.
  373.  
  374.      The ``AS'' option is used to specify that autonomous system number that
  375.      will be assigned to routes learned from this neighbor.  If not specified,
  376.      the autonomous system used in the EGP packets received from this neighbor
  377.      will be used.  This clause should not normally be used, it is reserved
  378.      for a special situation interfacing between the ARPAnet and NSFnet.
  379.  
  380.      The ``nogendefault'' option is used to specify this neighbor should not
  381.      be considered for the internal generation of default when ``RIP gateway''
  382.      or ``HELLO gateway'' is used.  If not specified, the internal default
  383.      will be generated when actively peering with this neighbor.
  384.  
  385.      The ``acceptdefault'' option is used to specify that the default route
  386.      (net 0.0.0.0) should be considered valid when received from this
  387.      neighbor.  If this option is not specified, the reception of the default
  388.      route will cause a warning message to be printed and the route to be
  389.      ignored.
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  401.  
  402.  
  403.  
  404.      The ``defaultout'' option is used to specify that the internally
  405.      generated default may be passed to this EGP neighbor at the specified
  406.      distance.  The distance should be specified as an EGP distance from 0 to
  407.      255.  A default route learned from another gateway will not be propagated
  408.      to an EGP neighbor.  Normally, no default route will be passed via EGP.
  409.      The ``acceptdefault'' option should not be specified when the
  410.      ``defaultout'' option is used.  The egpmetric specified in the
  411.      ``egpmetricout'' option does not apply, the default route will always use
  412.      the metric specified by the ``defaultout'' option.
  413.  
  414.      The ``validate'' option is used to specify that all networks received
  415.      from this EGP neighbor must be specified in ``validAS'' clause that also
  416.      specifies the autonomous system of this neighbor.  Networks not having a
  417.      ``validAS'' clause will be ignored after a warning message is printed.
  418.  
  419.      The ``intf'' option is used to specify the interface used to send EGP
  420.      packets to this neighbor.  This option is only required when there is no
  421.      common net/subnet with this egpneighbor.  This option currently is only
  422.      present for testing purposes and does not imply correct operation when
  423.      peering with an egpneighbor that does not share a common net/subnet.
  424.  
  425.      The ``sourcenet'' option is used to specify the source network to be
  426.      specified in EGP poll packets sent to this neighbor.  If this option is
  427.      not specified, the network (not subnet) of the interface used to
  428.      communicate with this neighbor is used.  This option is currently only
  429.      present for testing purposes and does not imply correct operation when
  430.      used.
  431.  
  432.      The ``gateway'' option is used to specify the gateway to be used when
  433.      installing routes learned from an EGP neighbor on a different network.
  434.      Normally these routes would be ignored.  This option is currently only
  435.      present for testing purposes and correct operation can not be assured
  436.      when it is used.
  437.  
  438. CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN FFFFIIIILLLLEEEE OOOOPPPPTTTTIIIIOOOONNNNSSSS FFFFOOOORRRR HHHHAAAANNNNDDDDLLLLIIIINNNNGGGG RRRROOOOUUUUTTTTIIIINNNNGGGG IIIINNNNFFFFOOOORRRRMMMMAAAATTTTIIIIOOOONNNN
  439.      The following configuration file options tell _g_a_t_e_d how to deal with both
  440.      incoming and outgoing routing information.
  441.  
  442.      ttttrrrruuuusssstttteeeeddddrrrriiiippppggggaaaatttteeeewwwwaaaayyyyssss ggggaaaatttteeeewwwwaaaayyyy [[[[ggggaaaatttteeeewwwwaaaayyyy]]]] [[[[ggggaaaatttteeeewwwwaaaayyyy]]]] ....................
  443.      ttttrrrruuuusssstttteeeeddddhhhheeeellllllllooooggggaaaatttteeeewwwwaaaayyyyssss ggggaaaatttteeeewwwwaaaayyyy [[[[ggggaaaatttteeeewwwwaaaayyyy]]]] [[[[ggggaaaatttteeeewwwwaaaayyyy]]]] ....................
  444.  
  445.      When these clauses are specified, _g_a_t_e_d will only listen to RIP or HELLO
  446.      information, respectively from these RIP or HELLO gateways.  ``gateway''
  447.      can be either a symbolic name from /_e_t_c/_h_o_s_t_s or an IP host address in
  448.      dot notation (a.b.c.d).  Again, dot notation is recommended to eliminate
  449.      confusion.  Please note that the propagation of routing information is
  450.      not restricted by this clause.
  451.  
  452.      ssssoooouuuurrrrcccceeeerrrriiiippppggggaaaatttteeeewwwwaaaayyyyssss ggggaaaatttteeeewwwwaaaayyyy [[[[ggggaaaatttteeeewwwwaaaayyyy]]]] [[[[ggggaaaatttteeeewwwwaaaayyyy]]]] ....................
  453.      ssssoooouuuurrrrcccceeeehhhheeeellllllllooooggggaaaatttteeeewwwwaaaayyyyssss ggggaaaatttteeeewwwwaaaayyyy [[[[ggggaaaatttteeeewwwwaaaayyyy]]]] [[[[ggggaaaatttteeeewwwwaaaayyyy]]]] ....................
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                                                         PPPPaaaaggggeeee 7777
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  467.  
  468.  
  469.  
  470.      _G_a_t_e_d will send RIP or HELLO information directly to the gateways
  471.      specified.  If ``pointopoint'' is specified in the ``RIP'' or ``HELLO''
  472.      clauses mentioned above, _g_a_t_e_d will only send RIP or HELLO information to
  473.      the specified gateways.  _G_a_t_e_d will NOT send out any information using
  474.      the broadcast address.  If ``pointopoint'' is not specified in those
  475.      clauses and _g_a_t_e_d is supplying of RIP or HELLO information, _g_a_t_e_d will
  476.      send information to the specified gateways as well as broadcasting it
  477.      using a broadcast address.
  478.  
  479.      nnnnoooorrrriiiippppoooouuuuttttiiiinnnntttteeeerrrrffffaaaacccceeee iiiinnnnttttffffaaaaddddddddrrrr [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] ....................
  480.      nnnnoooohhhheeeelllllllloooooooouuuuttttiiiinnnntttteeeerrrrffffaaaacccceeee iiiinnnnttttffffaaaaddddddddrrrr [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] ....................
  481.      nnnnoooorrrriiiippppffffrrrroooommmmiiiinnnntttteeeerrrrffffaaaacccceeee iiiinnnnttttffffaaaaddddddddrrrr [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] ....................
  482.      nnnnoooohhhheeeellllllllooooffffrrrroooommmmiiiinnnntttteeeerrrrffffaaaacccceeee iiiinnnnttttffffaaaaddddddddrrrr [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] ....................
  483.  
  484.      The above clauses turn protocols on and off on a per interface basis.
  485.      ``no{rip|hello}frominterface'' means that no RIP or HELLO information
  486.      will be accepted coming into the listed interfaces from another gateway.
  487.      ``no{rip|hello}outinterface'' means that no RIP or HELLO knowledge will
  488.      be sent out of the listed interfaces.  ``intfaddr'' should be in dot
  489.      notation (a.b.c.d).
  490.  
  491.      ppppaaaassssssssiiiivvvveeeeiiiinnnntttteeeerrrrffffaaaacccceeeessss iiiinnnnttttffffaaaaddddddddrrrr [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] [[[[iiiinnnnttttffffaaaaddddddddrrrr]]]] ....................
  492.  
  493.      In order to dynamically determine if an interface is properly
  494.      functioning, _g_a_t_e_d will time out an interface when no RIP, HELLO or EGP
  495.      packets are being received on that particular interface.  PSN interfaces
  496.      send a RIP or HELLO packet to themselves to determine if the interface is
  497.      properly functioning as the delay between EGP packets may be longer than
  498.      the interface timeout.  Interfaces that have timed out automatically have
  499.      their routes re-installed when routing information is again received over
  500.      the interface.  The above clause stops _g_a_t_e_d from timing out the listed
  501.      interfaces.  The interfaces listed will always be considered up and
  502.      working.  If _g_a_t_e_d is not a RIP or HELLO supplier, all interfaces will
  503.      not be aged and the ``passiveinterfaces'' automatically applies to all
  504.      interfaces.
  505.  
  506.      iiiinnnntttteeeerrrrffffaaaacccceeeemmmmeeeettttrrrriiiicccc iiiinnnnttttffffaaaaddddddddrrrr mmmmeeeettttrrrriiiicccc####
  507.  
  508.      This feature allows the specification of an interface metric for the
  509.      listed interface.  On systems that support interface metrics, this clause
  510.      will override the kernel's metric.  On systems that do not have support
  511.      for an interface metric, this feature allows the specification of one.
  512.      The interface metric is added to the true metric of each route that comes
  513.      in via routing information from the listed interface.  The interface
  514.      metric is also added to the true metric of any information sent out via
  515.      the listed interface.  The metric of directly attached interfaces is also
  516.      set to the interface metric, routing information broadcast about directly
  517.      attached nets will be based on the interface metric specified.  This
  518.      clause is required for each interface on which an interface metric is
  519.      desired.
  520.  
  521.  
  522.  
  523.  
  524.  
  525.                                                                         PPPPaaaaggggeeee 8888
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  533.  
  534.  
  535.  
  536.      rrrreeeeccccoooonnnnssssttttmmmmeeeettttrrrriiiicccc iiiinnnnttttffffaaaaddddddddrrrr mmmmeeeettttrrrriiiicccc####
  537.  
  538.      This is a first attempt to throw hooks for fallback routing into _g_a_t_e_d.
  539.      If the above clause is used, the metrics of the routes contained in any
  540.      RIP information coming into the listed interface will be set to the
  541.      specified ``metric#''.  Metric reconstitution should not be used lightly,
  542.      since it could be a major contributor in the formation of routing loops.
  543.      UUUUSSSSEEEE TTTTHHHHIIIISSSS WWWWIIIITTTTHHHH EEEEXXXXTTTTRRRREEEEMMMMEEEE CCCCAAAAUUUUTTTTIIIIOOOONNNN.... Any route that has a metric of infinity
  544.      will not be reconstituted and left as infinity.
  545.  
  546.      ffffiiiixxxxeeeeddddmmmmeeeettttrrrriiiicccc iiiinnnnttttffffaaaaddddddddrrrr pppprrrroooottttoooo {{{{rrrriiiipppp||||hhhheeeelllllllloooo}}}} mmmmeeeettttrrrriiiicccc####
  547.  
  548.      This is another attempt to throw hooks for fallback routing into _g_a_t_e_d.
  549.      If the above clause is used, all routing information sent out the
  550.      specified interface will have a metric of ``metric#''.  For RIP, specify
  551.      the metric as a RIP hopcount from 0 to infinity.  For HELLO, specify the
  552.      metric as a HELLO delay in milliseconds from 0 to infinity.  Any route
  553.      that has a metric of infinity will be left as infinity.  Fixed metrics
  554.      should also be UUUUSSSSEEEEDDDD WWWWIIIITTTTHHHH EEEEXXXXTTTTRRRREEEEMMMMEEEE CCCCAAAAUUUUTTTTIIIIOOOONNNN!!!!
  555.  
  556.      ddddoooonnnnoooottttlllliiiisssstttteeeennnn nnnneeeetttt iiiinnnnttttffff aaaaddddddddrrrr [[[[aaaaddddddddrrrr]]]] ............ pppprrrroooottttoooo {{{{rrrriiiipppp||||hhhheeeelllllllloooo}}}}
  557.      ddddoooonnnnoooottttlllliiiisssstttteeeennnnhhhhoooosssstttt hhhhoooosssstttt iiiinnnnttttffff aaaaddddddddrrrr [[[[aaaaddddddddrrrr]]]] ............ pppprrrroooottttoooo {{{{rrrriiiipppp||||hhhheeeelllllllloooo}}}}
  558.  
  559.      This clause reads as follows: keyword ``donotlisten'' followed by a
  560.      network number, which should be in dot notation followed by keyword
  561.      ``intf''.  Then a list of interfaces in dot notation precede the keyword
  562.      ``proto'', followed by ``rip'' or ``hello''.
  563.  
  564.      This means that any information regarding ``net'' coming in via the
  565.      specified protocols AND from the specified interfaces will be ignored.
  566.      The keyword ``all'' may be used after the keyword ``intf'' to specify all
  567.      interfaces on the machine.  For example:
  568.  
  569.           donotlisten 10.0.0.0 intf 128.84.253.200 proto rip
  570.  
  571.      means that any RIP information about net 10.0.0.0 coming in via interface
  572.      128.84.253.200 will be ignored.  One clause is required for each net on
  573.      which this restriction is desired.
  574.  
  575.           donotlisten 26.0.0.0 intf all proto rip hello
  576.  
  577.      means that any RIP and HELLO information about net 26.0.0.0 coming in via
  578.      any interface will be ignored.
  579.  
  580.      ``donotlistenhost'' can be described the same way as above except that a
  581.      host address is provided instead of a network address.  Restrictions of
  582.      the nature described above are applied to the specified host route
  583.      learned of by the specified routing protocol.
  584.  
  585.      lllliiiisssstttteeeennnn nnnneeeetttt ggggaaaatttteeeewwwwaaaayyyy aaaaddddddddrrrr [[[[aaaaddddddddrrrr]]]] ............ pppprrrroooottttoooo {{{{rrrriiiipppp||||hhhheeeelllllllloooo}}}}
  586.      lllliiiisssstttteeeennnnhhhhoooosssstttt hhhhoooosssstttt ggggaaaatttteeeewwwwaaaayyyy aaaaddddddddrrrr [[[[aaaaddddddddrrrr]]]] ............ pppprrrroooottttoooo {{{{rrrriiiipppp||||hhhheeeelllllllloooo}}}}
  587.  
  588.  
  589.  
  590.  
  591.                                                                         PPPPaaaaggggeeee 9999
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  599.  
  600.  
  601.  
  602.      This clause reads as follows:  keyword ``listen'' followed by a network
  603.      number which should be in dot notation followed by keyword ``gateway''.
  604.      Then a list of gateways in dot notation should precede the keyword
  605.      ``proto'', followed by ``rip'' or ``hello''.
  606.  
  607.      This means to only listen to information about network ``net'' by the
  608.      specified protocol(s) only from the listed ``gateways''.  For example:
  609.  
  610.           listen 128.84.0.0 gateway 128.84.253.3 proto hello
  611.  
  612.      means that any HELLO information about net 128.84 coming in via gateway
  613.      128.84.253.3 will be accepted.  Any other information about 128.84 from
  614.      any other gateway will be rejected.  One clause is necessary for each net
  615.      to be restricted.
  616.  
  617.           listenhost 26.0.0.15 gateway 128.84.253.3 proto rip
  618.  
  619.      means that any information about host 26.0.0.15 must come via RIP and
  620.      from gateway 128.84.253.3.  All other information regarding this host
  621.      will be ignored.
  622.  
  623.      aaaannnnnnnnoooouuuunnnncccceeee nnnneeeetttt iiiinnnnttttffff aaaaddddddddrrrr [[[[aaaaddddddddrrrr]]]] ............ pppprrrroooottttoooo ttttyyyyppppeeee [[[[eeeeggggppppmmmmeeeettttrrrriiiicccc ####]]]]
  624.      aaaannnnnnnnoooouuuunnnncccceeeehhhhoooosssstttt hhhhoooosssstttt iiiinnnnttttffff aaaaddddddddrrrr ............ pppprrrroooottttoooo ttttyyyyppppeeee [[[[eeeeggggppppmmmmeeeettttrrrriiiicccc ####]]]]
  625.      nnnnooooaaaannnnnnnnoooouuuunnnncccceeee nnnneeeetttt iiiinnnnttttffff aaaaddddddddrrrr [[[[aaaaddddddddrrrr]]]] ............ pppprrrroooottttoooo ttttyyyyppppeeee [[[[eeeeggggppppmmmmeeeettttrrrriiiicccc ####]]]]
  626.      nnnnooooaaaannnnnnnnoooouuuunnnncccceeeehhhhoooosssstttt hhhhoooosssstttt iiiinnnnttttffff aaaaddddddddrrrr ............ pppprrrroooottttoooo ttttyyyyppppeeee [[[[eeeeggggppppmmmmeeeettttrrrriiiicccc ####]]]]
  627.  
  628.      These clauses allow restriction of the networks and hosts announced and
  629.      by which protocol.  The ``announce{host}'' and ``noannounce{host}''
  630.      clauses may not be used together on the same interface.  With the
  631.      ``announce{host}'' clause, _g_a_t_e_d will only announce the nets or hosts
  632.      that have an associated ``announce{host}'' clause with the appropriate
  633.      protocol.  With the ``noannounce{host}'' clause, _g_a_t_e_d will announce
  634.      everything, EXCEPT those nets or hosts that have an associated
  635.      ``noannounce{host}'' clause.  This allows a choice of announcing only
  636.      what is on the announce list or everything except those nets on the
  637.      noannounce list on a per interface basis.
  638.  
  639.      The arguments are the same as in the ``donotlisten'' clause except
  640.      ``egp'' may be specified in the ``proto'' field.  ``type'' can either be
  641.      ``rip'', ``hello'', ``egp'', or any combination of the three.  When
  642.      ``egp'' is specified in the ``proto'' field, an egp metric must be
  643.      specified.  This is the metric at which _g_a_t_e_d will announce the listed
  644.      net via EGP.
  645.  
  646.      Please note that these are not static route entries.  These restrictions
  647.      will only apply if the net or host is learned via one of the routing
  648.      protocols.  If a restricted network suddenly becomes unreachable and goes
  649.      away, announcement of this net will stop until it is learned again.
  650.  
  651.      Currently, only one ``announce{host}'' or ``noannounce{host}'' may be
  652.      specified per network or host.  It is not possible to announce a network
  653.      or host via HELLO out one interface and via RIP out another.
  654.  
  655.  
  656.  
  657.                                                                        PPPPaaaaggggeeee 11110000
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  665.  
  666.  
  667.  
  668.      Some examples:
  669.  
  670.           announce 128.84 intf all proto rip hello egp egpmetric 0
  671.           announce 10.0.0.0 intf all proto rip
  672.           announce 0.0.0.0 intf 128.84.253.200 proto rip
  673.           announce 35.0.0.0 intf all proto rip egp egpmetric 3
  674.  
  675.      With only these four ``announce'' clauses in the configuration file,
  676.      _g_a_t_e_d will only announce these four nets.  It will announce 128.84.0.0
  677.      via RIP and HELLO to all interfaces and announce it via EGP with a metric
  678.      of 0.  Net 10.0.0.0 will be announced via RIP to all interfaces.  Net
  679.      0.0.0.0 (default) will be announced by RIP out interface 128.84.253.200
  680.      only.  Net 35.0.0.0 will be announced via RIP to all interfaces and
  681.      announced via EGP with a metric of 3.  These are the only nets that will
  682.      be broadcast by this gateway.  Once the first ``announce'' clause is
  683.      specified, only the nets with ``announce'' clauses will be broadcast;
  684.      this includes local subnets.  Once an ``announce{host}'' or
  685.      ``noannounce{host}'' has an ``all'' specified after an ``intf'', that
  686.      clause is applied globally and the option of having per interface
  687.      restrictions is lost.  If no routing announcement restrictions are
  688.      desired, ``announce'' clauses should not be used.  All information
  689.      learned will then be propagated out.  Please note that this has no affect
  690.      on the information to which _g_a_t_e_d listens.  Any net that does not have an
  691.      ``announce'' clause is still added to the kernel routing tables, but it
  692.      is not announced via any of the routing protocols.  To stop nets from
  693.      being added to the kernel the ``donotlisten'' clause may be used.
  694.  
  695.           announce 128.84 intf 128.59.2.1 proto rip
  696.           noannounce 128.84 intf 128.59.1.1 proto rip
  697.  
  698.      The above clauses mean that on interface 128.59.2.1, only information
  699.      about 128.84.0.0 will be announced via RIP, but on interface 128.59.1.1,
  700.      all information will be announced, except 128.84.0.0 via RIP.
  701.  
  702.           noannounce 128.84 intf all proto rip hello egp egpmetric 0
  703.           noannounce 10.0.0.0 intf all proto hello
  704.  
  705.      These clauses mean that except for the two specified nets, all nets will
  706.      be propagated.  Specifically, net 128.84.0.0 will not be announced on any
  707.      interface via any protocols.  Knowledge of 128.84.0.0 is not sent
  708.      anywhere.  Net 10.0.0.0 will not be announced via HELLO to any interface.
  709.      This also implies that net 10.0.0.0 will be announced to every interface
  710.      via RIP.  This net will also be broadcast via EGP with a metric specified
  711.      in the ``defaultegpmetric'' clause.
  712.  
  713.      ddddeeeeffffaaaauuuulllltttteeeeggggppppmmmmeeeettttrrrriiiicccc ####
  714.  
  715.      This is a default EGP metric to use when there are no routing
  716.      restrictions.  Normally, with no routing restrictions, _g_a_t_e_d announces
  717.      all networks learned via HELLO or RIP via EGP with this specified default
  718.      EGP metric.  If this clause is not used, the default EGP metric is set to
  719.      255, which would make any EGP advertised route of this nature be ignored.
  720.  
  721.  
  722.  
  723.                                                                        PPPPaaaaggggeeee 11111111
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  731.  
  732.  
  733.  
  734.      When there are no routing restrictions, any network with a direct
  735.      interface is announced via EGP with a metric of 0.  Note that this does
  736.      not include subnets, but only the non-subnetted network.
  737.  
  738.      ddddeeeeffffaaaauuuullllttttggggaaaatttteeeewwwwaaaayyyy ggggaaaatttteeeewwwwaaaayyyy pppprrrroooottttoooo [[[[mmmmeeeettttrrrriiiicccc mmmmeeeettttrrrriiiicccc]]]] {{{{aaaaccccttttiiiivvvveeee||||ppppaaaassssssssiiiivvvveeee}}}}
  739.  
  740.      This default gateway is installed in the kernel routing tables during
  741.      initialization and reinstalled whenever information about the default
  742.      route is lost.  This route is installed with the time delay equivalent of
  743.      a RIP metric of 15 unless another metric is specified with the metric
  744.      option.
  745.  
  746.      If `RIP gateway' or `HELLO gateway' are in use this default route is
  747.      deleted when successfully peering with an EGP neighbor not specified for
  748.      ``nogendefault''.
  749.  
  750.      An ``active'' default route will be overridden by any other default route
  751.      learned via another routing protocol.  A ``passive'' default route will
  752.      only be overridden by a default route with a lower metric.
  753.  
  754.      An ``active'' default route will not be propagated in routing updates, a
  755.      ``passive'' default route will be propagated.
  756.  
  757.      ``gateway'' should be an address in dot notation.  ``metric'' is optional
  758.      and should be a metric in the specified protocol between zero and
  759.      infinity, if not specified a RIP metric of 15 is used.  ``proto'' should
  760.      be either ``rip'', ``egp'', or ``hello''.  The ``proto'' field
  761.      initializes the protocol by which the route was learned.  Although in
  762.      this case it is unused, but the field is remains for consistency.
  763.  
  764.      nnnneeeetttt nnnneeeettttaaaaddddddddrrrr ggggaaaatttteeeewwwwaaaayyyy aaaaddddddddrrrr mmmmeeeettttrrrriiiicccc hhhhooooppppccccnnnntttt {{{{rrrriiiipppp||||eeeeggggpppp||||hhhheeeelllllllloooo}}}}
  765.      hhhhoooosssstttt hhhhoooossssttttaaaaddddddddrrrr ggggaaaatttteeeewwwwaaaayyyy aaaaddddddddrrrr mmmmeeeettttrrrriiiicccc hhhhooooppppccccnnnntttt {{{{rrrriiiipppp||||eeeeggggpppp||||hhhheeeelllllllloooo}}}}
  766.  
  767.      The following clauses install a static route to net ``netaddr'' or host
  768.      ``hostaddr'' through gateway ``addr'' at a metric of ``hopcnt'' learned
  769.      via either RIP, HELLO, or EGP.  As usual, dot notation is recommended for
  770.      the addresses.  This route will be installed in the kernel's routing
  771.      table and will never be affected by any other gateway's RIP or HELLO
  772.      announcements.  The protocol by which it was learned is important if the
  773.      route is to be announced via EGP.  If the protocol is ``rip'' or
  774.      ``hello'' and there are no routing restrictions, then this route will be
  775.      announced by EGP with a metric of ``defaultegpmetric''.  If the protocol
  776.      is ``egp'' and there are no routing restrictions, then this route will be
  777.      announced by EGP with a metric of ``hopcnt''.
  778.  
  779.      eeeeggggppppnnnneeeettttssssrrrreeeeaaaacccchhhhaaaabbbblllleeee nnnneeeetttt [[[[nnnneeeetttt]]]] [[[[nnnneeeetttt]]]] ....................
  780.  
  781.      This option was left in as a ``soft restriction''.  It cannot be used
  782.      when the ``announce'' or ``noannounce'' clauses are used.  Normally, with
  783.      no restrictions, _g_a_t_e_d announces all routes learned from RIP and HELLO
  784.      via EGP.  The ``egpnetsreachable'' clause restricts EGP announcement to
  785.      those nets listed in the clause.  The metric used for the HELLO and RIP
  786.  
  787.  
  788.  
  789.                                                                        PPPPaaaaggggeeee 11112222
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  797.  
  798.  
  799.  
  800.      learned routes is the value given in the ``defaultegpmetric'' clause.  If
  801.      this clause does not specify a value, the value is set to 255.  With the
  802.      ``egpnetsreachable'' clause, individual unique EGP metrics may not be set
  803.      for each net.  The ``defaultegpmetric'' is used for all networks except
  804.      those that are directly connected, which use a metric of 0.
  805.  
  806.      mmmmaaaarrrrttttiiiiaaaannnnnnnneeeettttssss nnnneeeetttt [[[[nnnneeeetttt]]]] [[[[nnnneeeetttt]]]] ............
  807.  
  808.      This clause appends to _g_a_t_e_d'_s list of ``martian'' networks.  ``Martian''
  809.      networks are those known to be invalid and should be ignored.  When _g_a_t_e_d
  810.      hears about one of these networks through any means, it will immediately
  811.      ignore it.  If ``external'' tracing is enabled, a message will be printed
  812.      to the trace log.  Multiple occurrences of the ``martiannets'' clause
  813.      accumulate.
  814.  
  815.      An initial list of ``martian'' networks is coded into gated.  This list
  816.      contains 127.0.0.0, 128.0.0.0, 191.253.0.0, 192.0.0.0, 223.255.255.0, and
  817.      224.0.0.0.
  818.  
  819. CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN FFFFIIIILLLLEEEE OOOOPPPPTTTTIIIIOOOONNNNSSSS FFFFOOOORRRR AAAAUUUUTTTTOOOONNNNOOOOMMMMOOOOUUUUSSSS SSSSYYYYSSSSTTTTEEEEMMMM RRRROOOOUUUUTTTTIIIINNNNGGGG
  820.      In the internal routing tables, _g_a_t_e_d maintains the autonomous system
  821.      number from which each route was learned.  Autonomous systems are used
  822.      only when an exterior routing protocol is in use, in this case EGP.
  823.      Routes are tagged with the autonomous system number of the EGP peer from
  824.      which they were learned.  Routes learned via the interior routing
  825.      protocols, RIP and HELLO, are tagged with the autonomous system number
  826.      specified in the ``autonomoussystem'' clause.
  827.  
  828.      _G_a_t_e_d normally does not propagate routes learned from exterior routing
  829.      protocols to interior routing protocols.  Historically this is because of
  830.      the ARPANET core EGP speakers which do not have adequate validation of
  831.      routing information they receive.  Some of the following clauses allow
  832.      exterior routes to be propagated via interior protocols.  Therefore it is
  833.      imperative that utmost care be taken when allowing the propagation of
  834.      exterior routes.
  835.  
  836.      The following clauses provide limited control over routing based on
  837.      autonomous system number.
  838.  
  839.      vvvvaaaalllliiiiddddAAAASSSS nnnneeeetttt AAAASSSS aaaassss mmmmeeeettttrrrriiiicccc mmmmeeeettttrrrriiiicccc
  840.  
  841.      The ``validAS'' clause is used for validation of networks from certain
  842.      AS.  When an EGP update is received from a neighbor which has the
  843.      ``validate'' option specified on the associated ``egpneighbor'' clause a
  844.      ``validAS'' clause is searched for specifying that network and the
  845.      autonomous system number of the EGP neighbor.  If the appropriate
  846.      ``validAS'' clause is located, the network is considered for addition to
  847.      the routing table with the specified metric.  If a ``validAS'' clause is
  848.      not located, a warning message is printed and the network is ignored.
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.                                                                        PPPPaaaaggggeeee 11113333
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  863.  
  864.  
  865.  
  866.      A network may be specified in several ``validAS'' clauses as being
  867.      associated with several different autonomous systems.
  868.  
  869.      aaaannnnnnnnoooouuuunnnncccceeeettttooooAAAASSSS aaaassss0000 {{{{rrrreeeessssttttrrrriiiicccctttt||||nnnnoooorrrreeeessssttttrrrriiiicccctttt}}}} AAAASSSSlllliiiisssstttt aaaassss1111 aaaassss2222 aaaassss3333 ............
  870.      nnnnooooaaaannnnnnnnoooouuuunnnncccceeeettttooooAAAASSSS aaaassss0000 {{{{rrrreeeessssttttrrrriiiicccctttt||||nnnnoooorrrreeeessssttttrrrriiiicccctttt}}}} AAAASSSSlllliiiisssstttt aaaassss1111 aaaassss2222 aaaassss3333 ............
  871.  
  872.      The ``announcetoAS'' and ``noannouncetoAS'' control the exchanging of
  873.      routing information between different autonomous systems.  Normally _g_a_t_e_d
  874.      will not propagate routing information between autonomous systems.  The
  875.      exception to this is that routes learned from _g_a_t_e_d's own autonomous
  876.      system via RIP and HELLO will be propagated via EGP.  These clauses allow
  877.      information learned via EGP from one autonomous system to be propagated
  878.      via EGP to another autonomous system or via RIP and HELLO to _g_a_t_e_d's own
  879.      autonomous system.
  880.  
  881.      If the ``announcetoAS'' clause is specified, information learned via EGP
  882.      from autonomous systems _a_s_1, _a_s_2, _a_s_3, ...  will be propagated to
  883.      autonomous system _a_s_0.  If _g_a_t_e_d's own autonomous system, as specified in
  884.      the ``autonomoussystem'' clause, is specified as _a_s_0, this information
  885.      will be propagated via RIP and HELLO.  Routing information from
  886.      autonomous systems not specified in the ASlist will not be propagated to
  887.      autonomous system _a_s_0.
  888.  
  889.      If the ``noannouncetoAS'' clause is specified, information learned via
  890.      EGP from all autonomous systems except _a_s_1, _a_s_2, _a_s_3, ...  will be
  891.      propagated to autonomous systems _a_s_0.  If _g_a_t_e_d's own autonomous system
  892.      is specified as _a_s_0, this information will not be propagated via RIP and
  893.      HELLO.
  894.  
  895.      The ``[no]restrict'' option controls the application of ``announce'' and
  896.      ``noannounce'' clauses to the propagation of routes to different
  897.      autonomous systems.  If ``restrict'' is specified, normal announcement
  898.      restrictions do apply, if ``norestrict'' is specified, announcement
  899.      restrictions are not considered, all routes from the source autonomous
  900.      systems are propagated to the destination autonomous system.
  901.  
  902.      Only one ``announcetoAS'' or ``noannounceAS'' clause may be specified per
  903.      target autonomous system.
  904.  
  905. NNNNOOOOTTTTEEEESSSS OOOONNNN CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRAAAATTTTIIIIOOOONNNN OOOOPPPPTTTTIIIIOOOONNNNSSSS
  906.      If EGP is being used when supplying the default route (via ``RIP
  907.      gateway'' or ``HELLO gateway'') and all EGP neighbors are lost, the
  908.      default route will not be advertised until at least one EGP neighbor is
  909.      regained.
  910.  
  911.      With the complexity of the current network topology and with many back-
  912.      door paths to networks, the use of routing restrictions is recommended.
  913.      With the current routing strategies, it is easy for illegal or invalid
  914.      networks to penetrate into the ARPAnet Core or the NSFnet backbone.
  915.      Using routing restrictions does take a little more maintenance time and
  916.      routing restrictions are not the long term answer, but, for now, in order
  917.      to be good Internet players, we must use them.
  918.  
  919.  
  920.  
  921.                                                                        PPPPaaaaggggeeee 11114444
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  929.  
  930.  
  931.  
  932. GGGGAAAATTTTEEEEDDDD IIIINNNNTTTTEEEERRRRNNNNAAAALLLL MMMMEEEETTTTRRRRIIIICCCCSSSS
  933.      _G_a_t_e_d stores all metrics internally as a time delay in milliseconds to
  934.      preserve the granularity of HELLO time delays.  The internal delay ranges
  935.      from 0 to 30000 milliseconds with 30000 representing infinity.  Metrics
  936.      from other protocols are translated to and from a time delay as they are
  937.      received and transmitted.  EGP distances are not comparable to HELLO and
  938.      RIP metrics but are stored as a time delay internally for comparison with
  939.      other EGP metrics.  The conversion factor between EGP distances and time
  940.      delays is 100.  RIP and interface metrics are translated to and from the
  941.      internal time delays with the use of the following translation tables:
  942.  
  943.       Time Delay     RIP metric         RIP metric   Time Delay
  944.          0 -     0        0                  0             0
  945.          1 -   100        1                  1           100
  946.        101 -   148        2                  2           148
  947.        149 -   219        3                  3           219
  948.        220 -   325        4                  4           325
  949.        326 -   481        5                  5           481
  950.        482 -   713        6                  6           713
  951.        714 -  1057        7                  7          1057
  952.       1058 -  1567        8                  8          1567
  953.       1568 -  2322        9                  9          2322
  954.       2323 -  3440       10                 10          3440
  955.       3441 -  5097       11                 11          5097
  956.       5098 -  7552       12                 12          7552
  957.       7553 - 11190       13                 13         11190
  958.      11191 - 16579       14                 14         16579
  959.      16580 - 24564       15                 15         24564
  960.      24565 - 30000       16                 16         30000
  961.  
  962. NNNNOOOOTTTTEEEESSSS OOOONNNN IIIIMMMMPPPPLLLLEEEEMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN SSSSPPPPEEEECCCCIIIIFFFFIIIICCCCSSSS
  963.      In the _g_a_t_e_d configuration file, all references to POINT-TO-POINT
  964.      interfaces must use the DESTINATION address.
  965.  
  966.      All protocols have a two minute hold down.  When a routing update
  967.      indicates that the route in use is being deleted, _g_a_t_e_d will not delete
  968.      the route for two minutes.
  969.  
  970.      Changes can be made to the interfaces and _g_a_t_e_d will notice them without
  971.      having to restart the process.  If the netmask, subnetmask, broadcast
  972.      address, or interface metric are changed, the interface should be marked
  973.      down with _i_f_c_o_n_f_i_g(1M), then marked up at least thirty seconds later.
  974.      Flag changes do not require the interface to be brought down and back up.
  975.  
  976.      RIP propagates and listens to host routes, thus allowing the consistent
  977.      handling of PTP links.  The RIP_TRACE commands are also supported.
  978.  
  979.      Subnet interfaces are supported.  Subnet information will only be
  980.      propagated on interfaces to other subnets of the same network.  For
  981.      example, if there is a gateway between two class B networks, the subnet
  982.      routes for each respective class B net are not propagated into the other
  983.      class B net.  Just the class B network number is propagated.
  984.  
  985.  
  986.  
  987.                                                                        PPPPaaaaggggeeee 11115555
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994. GGGGAAAATTTTEEEEDDDD((((1111MMMM))))                                                            GGGGAAAATTTTEEEEDDDD((((1111MMMM))))
  995.  
  996.  
  997.  
  998.      _G_a_t_e_d listens to host and network REDIRECTs and tries to take an action
  999.      on the REDIRECT for its own internal tables that parallels the kernel's
  1000.      action.  In this way, the redirect routine in _g_a_t_e_d parallels the
  1001.      Berkeley kernel redirect routine as closely as possible.  Unlike the
  1002.      Berkeley kernel, _g_a_t_e_d times out routes learned via a REDIRECT after six
  1003.      minutes.  The route is then deleted from the kernel routing tables.  This
  1004.      helps keep the routing tables more consistent.  Any route that was
  1005.      learned via a REDIRECT is NOT announced by any routing protocol.
  1006.  
  1007.      The _g_a_t_e_d EGP code verifies that all nets sent and received are valid
  1008.      class A, B or C networks per the EGP specification.  Information about
  1009.      networks that do not meet these criteria is not propagated.  If an EGP
  1010.      update packet contains information about a network that is not either
  1011.      class A, B or C, the update is considered to be in error and is ignored.
  1012.  
  1013. FFFFIIIILLLLEEEESSSS
  1014.      ////uuuussssrrrr////eeeettttcccc////ggggaaaatttteeeedddd....ccccoooonnnnffff configuration file.
  1015.      ////uuuussssrrrr////ttttmmmmpppp////ggggaaaatttteeeedddd____dddduuuummmmpppp memory dump file
  1016.      ////uuuussssrrrr////eeeettttcccc////ggggaaaatttteeeedddd      _g_a_t_e_d itself
  1017.  
  1018. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  1019.      _r_o_u_t_e_d(1M)
  1020.      RFC827 EXTERIOR GATEWAY PROTOCOL (EGP)
  1021.      RFC888 "STUB" EXTERIOR GATEWAY PROTOCOL
  1022.      RFC891 DCN Local-Network Protocols (HELLO)
  1023.      RFC904 Exterior Gateway Protocol Formal Specification
  1024.      RFC911 EGP GATEWAY UNDER BERKELEY UNIX 4.2
  1025.  
  1026. CCCCRRRREEEEDDDDIIIITTTTSSSS
  1027.      This program was derived from Paul Kirton's EGP for UNIX, UC at
  1028.      Berkeley's _r_o_u_t_e_d(1M), and HELLO routines by Mike Petry at the University
  1029.      of Maryland.
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.                                                                        PPPPaaaaggggeeee 11116666
  1054.  
  1055.  
  1056.  
  1057.